Transactional memory (TM) typically attempts to simplify concurrent programming by allowing a set of load and store instructions to execute in an atomic manner. Software transactional memory (STM) is a concurrency control process for controlling access to shared memory in concurrent computing. For STM, a transaction occurs when a piece of code executes a series of reads and writes to shared memory. These reads and writes logically occur at a single instant in time, with intermediate states being invisible to other transactions.